var str = `
        let row = M("system.demo").get();
        let row = M("ceshjio.d1111").get();
            let row = M("user.nihao").get();
            let row = M("system.demo").get();
            let row = M("system.demo").get();
        let ddd = 0
        if($_GET.aid==1){
           ddd = row
        }else{
           ddd = $_GET.aid
        }
        return row
`;
var reg = /M\((.*?)\)/g;
var res = str.match(reg);
let modeList = [];
while (res = reg.exec(str)) {
  modeList.push(res[1]);
}

let newArr = [...new Set(modeList)]

// const zlib = require('zlib');
//
// var data = `
//         let row = M("system.demo").get();
//         let ddd = 0
//         if($_GET.aid==1){
//            ddd = row
//         }else{
//            ddd = $_GET.aid
//         }
//         return row
// `;
// zlib.deflate(data, function (err, buffer) {
//   if (err) {
//     console.log(err);
//   }
//   let base64 = buffer.toString('base64')
//   //buffer就是压缩后的数据
//   console.log("带带吗",base64);
//
//   var dataBuffer = new Buffer.from(base64, 'base64')
//
//   //对buffer数据进行解压
//   zlib.unzip(dataBuffer, function (err, buffer) {
//     let code = buffer.toString();
//     const vm = require('vm');
//
//     const sandbox = {a: 1, b: 3};
//     // https://nodejs.org/api/vm.html#vm_what_does_it_mean_to_contextify_an_object
//     vm.createContext(sandbox);
//     // 在执行上下文运行
//     const result = vm.runInContext(code, sandbox);
//     console.log(result);
//
//   });
// });
//

// const vm = require('vm');
//
// const sandbox = {a: 1, b: 3};
// // https://nodejs.org/api/vm.html#vm_what_does_it_mean_to_contextify_an_object
// vm.createContext(sandbox);
// // 在执行上下文运行
// const result = vm.runInContext('', sandbox);
// console.log(result);
